﻿//------------------------------------------------------------------------------
// ╭─────────────────────────────╮
// │ ╭─╮     ╭─╮              TM │   ╠═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╣
// │ │ │     │ │                 │                                           ☺  
// │ │ ╰───╮ │ │ ╭─────╮ ╭─────╮ │     Name:Wedn.Net User管理类拓展接口  ♮ ♪ ♩
// │ │ ╭─╮ │ │ │ │ ╭─╮ │ │ ╭─╮ │ │                                    ♫ ♭      
// │ │ ╰─╯ │ │ │ │ ╰─╯ │ │ ╰─╯ │ │     Author:iceStone               ♬ ♪       
// │ └─────╯ └─╯ ╰─────╯ ╰───╮ │ │     Chinese:汪磊                              
// │                     ┌───╯ │ │                                              
// │                     ╰─────╯ │   ╠═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╣
// ╰─────────────────────────────╯                                              
//------------------------------------------------------------------------------
using Wedn.Net.Common;
using Wedn.Net.Model;

namespace Wedn.Net.IBLL
{
    /// <summary>
    /// User管理类接口 IUserManager
    /// </summary>
    public partial interface IUserManager
    {
        /// <summary>
        /// 校验用户登录
        /// </summary>
        /// <param name="uid">用户登录名</param>
        /// <param name="pwd">用户密码</param>
        /// <param name="currentUser">当前用户</param>
        /// <returns>登录结果</returns>
        LoginResult Login(string uid, string pwd, out User currentUser);

        /// <summary>
        /// 校验用户登录
        /// </summary>
        /// <param name="uid">用户登录名</param>
        /// <param name="pwd">用户密码</param>
        /// <param name="currentUser">当前用户</param>
        /// <param name="isFromCookie">是否来自Cookie登录</param>
        /// <returns>登录结果</returns>
        LoginResult Login(string uid, string pwd, out User currentUser, bool isFromCookie);
        /// <summary>
        /// 获取一个用户的加密信息字符串
        /// </summary>
        /// <param name="user">用户实体</param>
        /// <returns>加密后的字符串</returns>
        string GetEncryptUserInfo(User user);
        /// <summary>
        /// 根据加密后的cookie解密出用户实体部分信息, 返回用户实体
        /// </summary>
        /// <param name="cookie">要解密的cookie</param>
        /// <returns>返回用户实体</returns>
        User GetDecryptUserInfo(string cookie);
        /// <summary>
        /// 校验用户是否已经登录
        /// </summary>
        bool CheckLogin();
        /// <summary>
        /// 校验cookie登录
        /// </summary>
        /// <returns>是否登陆成功</returns>
        bool CookieLogin();
    }
}
